From 3c66de8cb23336c87901d670e917f50671445e00 Mon Sep 17 00:00:00 2001 From: "sos22@douglas.cl.cam.ac.uk" Date: Sat, 28 Jan 2006 11:09:18 +0100 Subject: [PATCH] Fix build. Signed-off-by: Steven Smith, sos22@cam.ac.uk --- .../arch/xen/x86_64/mm/init.c | 45 +++++++++++++------ 1 file changed, 31 insertions(+), 14 deletions(-) diff --git a/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c b/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c index fb614ef453..ca89138f44 100644 --- a/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c +++ b/linux-2.6-xen-sparse/arch/xen/x86_64/mm/init.c @@ -93,14 +93,11 @@ static void early_make_mmu_page_readonly(void *va) BUG(); } -void make_mmu_page_readonly(void *va) +void make_page_readonly(void *va) { pgd_t *pgd; pud_t *pud; pmd_t *pmd; pte_t pte, *ptep; unsigned long addr = (unsigned long) va; - if (xen_feature(writable_mmu_structures)) - return; - pgd = pgd_offset_k(addr); pud = pud_offset(pgd, addr); pmd = pmd_offset(pud, addr); @@ -111,16 +108,20 @@ void make_mmu_page_readonly(void *va) xen_l1_entry_update(ptep, pte); /* fallback */ if ((addr >= VMALLOC_START) && (addr < VMALLOC_END)) - make_mmu_page_readonly(__va(pte_pfn(pte) << PAGE_SHIFT)); + make_page_readonly(__va(pte_pfn(pte) << PAGE_SHIFT)); } -void make_mmu_page_writable(void *va) +void make_mmu_page_readonly(void *va) { - pgd_t *pgd; pud_t *pud; pmd_t *pmd; pte_t pte, *ptep; - unsigned long addr = (unsigned long) va; - if (xen_feature(writable_mmu_structures)) return; + make_page_readonly(va); +} + +void make_page_writable(void *va) +{ + pgd_t *pgd; pud_t *pud; pmd_t *pmd; pte_t pte, *ptep; + unsigned long addr = (unsigned long) va; pgd = pgd_offset_k(addr); pud = pud_offset(pgd, addr); @@ -132,30 +133,46 @@ void make_mmu_page_writable(void *va) xen_l1_entry_update(ptep, pte); /* fallback */ if ((addr >= VMALLOC_START) && (addr < VMALLOC_END)) - make_mmu_page_writable(__va(pte_pfn(pte) << PAGE_SHIFT)); + make_page_writable(__va(pte_pfn(pte) << PAGE_SHIFT)); } -void make_mmu_pages_readonly(void *va, unsigned nr) +void make_mmu_page_writable(void *va) { if (xen_feature(writable_mmu_structures)) return; + make_page_writable(va); +} +void make_pages_readonly(void *va, unsigned nr) +{ while (nr-- != 0) { - make_mmu_page_readonly(va); + make_page_readonly(va); va = (void*)((unsigned long)va + PAGE_SIZE); } } -void make_mmu_pages_writable(void *va, unsigned nr) +void make_mmu_pages_readonly(void *va, unsigned nr) { if (xen_feature(writable_mmu_structures)) return; + make_pages_readonly(va, nr); +} + +void make_pages_writable(void *va, unsigned nr) +{ while (nr-- != 0) { - make_mmu_page_writable(va); + make_page_writable(va); va = (void*)((unsigned long)va + PAGE_SIZE); } } +void make_mmu_pages_writable(void *va, unsigned nr) +{ + if (xen_feature(writable_mmu_structures)) + return; + make_pages_writable(va, nr); +} + /* * NOTE: pagetable_init alloc all the fixmap pagetables contiguous on the * physical space so we can cache the place of the first one and move -- 2.30.2